import router from '@/router.js'
import { getUserInfo } from '@/api/login'
import store from "@/store"
/*
前置路由钩子函数
to ：即将要进入的目标路由对象
from ：当前导航正要离开的路由对象
next : 调用该方法，进入目标路由
*/
router.beforeEach((to, from, next) => {
    // const token = localStorage.getItem('mxg-msm-token')
    const token = store.state.user.token
    // console.log("1111",token)  此处验证了有token

    //没有token
    // ！可将变量转换成boolean类型，
    // null、undefined和空字符串取反都为false，其余都为true。
    if (!token) {
        if (to.path !== '/login') {
            // 不允许访问login以外的路由，回到login
            next({ path: '/login' })
        }
        else {
            //如果要去login，直接next
            next()
        }
    }
    else {
        // const userInfo = localStorage.getItem('mxg-msm-user')
        const userInfo = store.state.user.user
        // console.log("222",userInfo) //此处验证了有userInfo
        //没有用户信息
        if (!userInfo) {
            // 获取用户信息
            console.log('获取用户信息')
            store.dispatch("GetUserInfo").then(response => {
                if (response.flag) {
                    // 获取用户信息成功
                    //直接去到目标路由
                    next()
                }
                else {
                    // 获取用户信息失败（token过期），回到login重新登录
                    next({ path: '/login' })
                }
            }).catch(error => {

            })
        }
        // 有用户信息，直接去往目标路由
        else {
            next()
        }
    }
})
